import { IPSControlItem } from '../ipscontrol-item';
import { IPSDEFDCatGroupLogic } from './ipsdefdcat-group-logic';
import { IPSLayout } from '../layout/ipslayout';
import { IPSLayoutPos } from '../layout/ipslayout-pos';
import { IPSLanguageRes } from '../../res/ipslanguage-res';
import { IPSSysCss } from '../../res/ipssys-css';
import { IPSSysImage } from '../../res/ipssys-image';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * 子接口类型识别属性[detailType]
 * @export
 * @interface IPSDEFormDetail
 */
export interface IPSDEFormDetail extends IPSControlItem {
  /**
   * 标题语言资源
   *
   * @type {IPSLanguageRes}
   */
  getCapPSLanguageRes(): IPSLanguageRes | null;

  /**
   * 标题
   * @type {string}
   */
  caption: string;

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 列水平对齐
   * @description 值模式 [云实体属性界面模式表格列对齐] {LEFT：左对齐、 CENTER：居中、 RIGHT：右对齐 }
   * @type {( string | 'LEFT' | 'CENTER' | 'RIGHT')}
   */
  columnAlign: string | 'LEFT' | 'CENTER' | 'RIGHT';

  /**
   * 内容高度
   * @type {number}
   * @default 0.0
   */
  contentHeight: number;

  /**
   * 内容宽度
   * @type {number}
   * @default 0.0
   */
  contentWidth: number;

  /**
   * 成员直接样式
   * @type {string}
   */
  cssStyle: string;

  /**
   * 成员样式
   * @description 值模式 [部件成员样式] {DEFAULT：默认样式、 STYLE2：样式2、 STYLE3：样式3、 STYLE4：样式4 }
   * @type {( string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4')}
   */
  detailStyle: string | 'DEFAULT' | 'STYLE2' | 'STYLE3' | 'STYLE4';

  /**
   * 成员类型
   * @description 值模式 [云平台表单成员类型2（静态）] {FORMPAGE：表单分页、 TABPANEL：分页部件、 TABPAGE：分页面板、 FORMITEM：表单项、 USERCONTROL：用户控件、 FORMPART：表单部件、 GROUPPANEL：分组面板、 DRUIPART：数据关系界面、 RAWITEM：直接内容、 BUTTON：表单按钮、 IFRAME：直接页面嵌入、 FORMITEMEX：复合表单项、 MDCTRL：多数据部件 }
   * @type {( string | 'FORMPAGE' | 'TABPANEL' | 'TABPAGE' | 'FORMITEM' | 'USERCONTROL' | 'FORMPART' | 'GROUPPANEL' | 'DRUIPART' | 'RAWITEM' | 'BUTTON' | 'IFRAME' | 'FORMITEMEX' | 'MDCTRL')}
   */
  detailType:
    | string
    | 'FORMPAGE'
    | 'TABPANEL'
    | 'TABPAGE'
    | 'FORMITEM'
    | 'USERCONTROL'
    | 'FORMPART'
    | 'GROUPPANEL'
    | 'DRUIPART'
    | 'RAWITEM'
    | 'BUTTON'
    | 'IFRAME'
    | 'FORMITEMEX'
    | 'MDCTRL';

  /**
   * 动态样式表
   * @type {string}
   */
  dynaClass: string;

  /**
   * 高度
   * @type {number}
   * @default 0.0
   */
  height: number;

  /**
   * 标签直接样式
   * @type {string}
   */
  labelCssStyle: string;

  /**
   * 标签动态样式表
   * @type {string}
   */
  labelDynaClass: string;

  /**
   * 成员标签样式表
   *
   * @type {IPSSysCss}
   */
  getLabelPSSysCss(): IPSSysCss | null;

  /**
   * 表单成员动态逻辑
   *
   * @type {IPSDEFDCatGroupLogic[]}
   */
  getPSDEFDGroupLogics(): IPSDEFDCatGroupLogic[] | null;

  findPSDEFDCatGroupLogic(objKey: any): IPSDEFDCatGroupLogic | null;

  /**
   * 布局设置
   *
   * @type {IPSLayout}
   */
  getPSLayout(): IPSLayout | null;

  /**
   * 布局位置
   *
   * @type {IPSLayoutPos}
   */
  getPSLayoutPos(): IPSLayoutPos | null;

  /**
   * 成员样式表
   *
   * @type {IPSSysCss}
   */
  getPSSysCss(): IPSSysCss | null;

  /**
   * 成员图标
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 显示更多管理者
   *
   * @type {IPSDEFormDetail}
   */
  getShowMoreMgrPSDEFormDetail(): IPSDEFormDetail | null;

  /**
   * 显示更多模式
   * @description 值模式 [显示更多模式] {0：无、 1：受控内容、 2：管理容器 }
   * @type {( number | 0 | 1 | 2)}
   * @default 0
   */
  showMoreMode: number | 0 | 1 | 2;

  /**
   * 宽度
   * @type {number}
   * @default 0.0
   */
  width: number;

  /**
   * 重复输出内容
   * @type {boolean}
   * @default false
   */
  repeatContent: boolean;

  /**
   * 显示标题
   * @type {boolean}
   */
  showCaption: boolean;
}
